技術問答
技術文章
iT 徵才
Tag
聊天室
2023 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2023 iThome 鐵人賽
DAY
5
0
AI & Data
AI白話文運動系列之「A!給我那張Image!」
系列 第
5
篇
現代問題就要用現代方法來處理--AI中的線性代數(以MLP為例)
15th鐵人賽
理工哈士奇嗷嗚嗷嗚
2023-09-20 21:09:49
298 瀏覽
分享至
前言
前幾天著重在微積分(梯度下降法)與任務目標最佳化方法的討論,今天讓我們正式踏入AI模型的世界,看看一個簡單的AI模型會長甚麼樣子。
先備知識
高中線性代數(至少需要知道向量、矩陣計算等概念)
看完今天的內容你可能會知道......
甚麼是神經元?
多層感知器是甚麼結構?
人腦中的神經元與AI模型中的神經元差在哪裡?
一、線性代數入門
國中的時候我們學過數線,它是一條有方向的線,這個方向是由線上任兩點決定的,到了高中,我們把這樣的概念延伸,認識了向量,它跟一般的點差在它除了「長度」以外,還需要具有「方向」,所以在圖上我們習慣用箭號來表示。向量與一般的點一樣可以做不同的運算,也可以「被」運算,也就是通過矩陣來改變向量。
在數學上我們會用這樣的方式表示向量與矩陣的運算::
,其中
,
,以及
,分別代表裡面有所元素都是實數的矩陣與向量。
二、AI模型的基本單位--神經元
人體由許多各司其職的單位構成,讓你可以運動的是肌肉,負責思考下指令的是腦,可是,我今天要如何將腦部的訊號傳遞到所需要的部位呢?這就需要利用神經元來幫忙,下圖是一個神經元的構造
中間一長條的部分稱為軸突,用來傳遞訊號,而左邊的樹狀結構稱為樹突,負責接收訊號,最後,由最右方的樹狀結構:突觸,負責將訊號再往下傳遞。整個過程看似簡單,卻有一些地方值得深思,首先,這個訊號是甚麼東西?訊號一直來的話,神經元就會不斷地傳遞訊號嗎?
先來說說第一個問題,所謂的「訊號」,其實也可以想成是某種「刺激」,這些刺激讓細胞的表面電位產生變化,因此就有了訊號,就像我們使用的電器一樣,當有0跟1(有或無)的差異出現時,就可以利用這差異產生一連串有意義的訊號。
接著來看第二個問題,實際上,並不是所有傳遞到神經元的訊號都會往下傳,我們的神經元跟腦是非常聰明的,可塑性也非常高,從我們開始「學習」之後(從你出生之後無時無刻都在學習),每接觸一次新的資訊都是在重新塑造這些神經元,因此這些神經元會根據不同的訊號產生不同的反應,同時,神經元還會「累積」訊號,每個神經元都會判斷這次的訊號強度夠不夠,只有當訊號強度夠高的時候才會往下傳遞,不夠的話就先記起來,累積到強度夠高為止。
對這部分感興趣的話可以參考:
https://zh.wikipedia.org/zh-tw/%E7%A5%9E%E7%B6%93%E5%85%83
看完基本上可以更清楚神經元的運作方式。
一開始探索人工智慧的時候,就像人類在其他領域常做的一樣,先找性能類似的東西,嘗試模仿與改造(飛機與鳥、潛水艇與魚等等),在AI這個領域,被模仿的就是上面介紹到的神經元,也就是下面所看到:
藍色圓形表示一個神經元,左方的箭頭表示輸入訊號,右方箭頭表示輸出訊號,中間的運算符號分別代表:「累加」與「激發」,也就是前面提到的訊號的累積以及判斷該訊號是否往下傳遞。函數
f
也被稱為「激勵函數(Activation Function)」。
如果用數學來描述這樣的過程就是:
,其中
表示輸入訊號,
) 表示對應訊號的強弱,
表示一個修正量(bias),修正量與訊號強弱其實也就是我們之前不斷在討論的「參數」,畢竟這是整個系統當中唯一可以由人為控制的部分,輸入訊號是給定好的,不能動,而輸出訊號又取決於輸入訊號與不同參數的運算結果,所以這也是為甚麼我們會花很多時間討論「參數」以及參數要怎麼更新(梯度下降法),可以說這就是整個AI模型的靈魂。
順帶一提,如果覺得上面的數學形式很熟悉的話,恭喜你!這個表達式可以利用上面線性代數的方式表示成矩陣跟向量的運算!
三、最基礎的AI模型--多層感知器MLP
就像人腦一樣,我們的AI模型也不會只有一個簡單的神經元,所以,最簡單的方式就是把這些神經元全部組合在一起,用來模擬人腦:
這樣的結構我們稱之為多層感知器Multilayer Perceptron(MLP),他由好幾個不同的「層(Layer)」每個層裡面又包含了許多的神經元,線圖只是很簡單的範例,可以按照這個邏輯擴大成更大的模型。
補充:在AI模型中,我們有時候會使用隱藏層(Hidden layer)來表示除了出入與輸出層以外的所有層,以上圖僅有的三層為例,其中最左邊的代表輸入層,最右邊的代表輸出層,中間的便是隱藏層。
如果利用上面討論過的線性代數的概念,結合單個神經元的運算的話,我們可以把這樣一個模型的每個步驟寫成這樣:
有了這樣表達式之後,我們可以嘗試利用梯度下降法推導看看每個參數要怎麼更新,具體的步驟會留到明天跟實作的部分一起解答。
其實最開始出現的是單層感知器,也就是僅有一層的模型,不過那個可以看成是MLP的特例,所以我並沒有特別拿出來討論,對這些內容與歷史演進有興趣的可以參考:
https://zh.wikipedia.org/zh-tw/%E4%BA%BA%E5%B7%A5%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C
四、總結
在今天的內容中,我們算是正式進入AI模型的世界了,後面我們會接續這個步調往下討論一些常見的模型架構,也會看看不同的使用情境應該要用怎樣的模型架構,不同架構有甚麼優缺點等等的。如果可以的話,最好能利用今天的內容,結合先前討論過的梯度下降法複習一次,在看到明天的內容之前,可以先看看自己理解到哪裡了,這樣也有助於學習後續的內容。
留言
追蹤
檢舉
上一篇
理想跟現實不一樣有甚麼損失?番外篇(客製化AI訓練目標--正則化器)
下一篇
番外篇—AI怎麼學?梯度下降法與反向傳播
系列文
AI白話文運動系列之「A!給我那張Image!」
共
30
篇
目錄
RSS系列文
訂閱系列文
1
人訂閱
26
AI研究趨勢討論(一)--模型壓縮與加速(Model Compression and Acceleration)前篇
27
AI研究趨勢討論(一)--模型壓縮與加速(Model Compression and Acceleration)後篇
28
AI研究趨勢討論(二)--遷移學習、領域自適應與領域泛化
29
AI研究趨勢討論(三)--強強聯手打造新世代里程碑(CNN與ViT結合)
30
AI研究趨勢討論(四)--AI圖像生成(以Diffusion Model為例)
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1123
組
團體組數
52
組
累計文章數
23068
篇
完賽人數
656
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
2018鐵人賽
javascript
2017鐵人賽
python
windows
php
c#
windows server
linux
css
react
程式設計
vue.js
熱門問題
近期遭受到DoS攻擊, 有無反擊的方式?
請問這是甚麼編碼 ( php )
对岸的朋友们什么手机品牌最常见啊?
DC內帳號可否刪除
套裝電腦加裝繪圖卡的選擇
FortiGate奇怪的logs
QRCDOE 下載問題
WSUS user 無法更新
python selenium問題
當AD帳號啟用後RDP遠端主機卻回應此帳號停用
熱門回答
QRCDOE 下載問題
寫了一個Powershell 疑問
想要架設內網環境 excel 網頁編輯系統,資料保存在公司本地
當AD帳號啟用後RDP遠端主機卻回應此帳號停用
phpBB與Active Directory同步帳號
熱門文章
Vigor Router Firewall 只允許通過即時通訊軟體 Skype Line TG 不允許上網,限制LINE只能文字不能傳檔案圖片語音
🪨把 Notion 當 AI RAG AI智查資料庫及CRUD資料庫 部落格標題生成及總結文章
Docker Kafka Cluster 部屬筆記 (3 Brokers & 1 Zookeeper)
JS學習紀錄-06-其他運算子跟三元運算子
基於開源虛擬化Proxmox VE搭建免費虛擬桌面系統
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}